using System;
using System.Collections.Generic;
using MongoDB.Bson;
using MongoDB.Driver;

namespace folhapagamento
{
	public class OcorrenciaRepositorio
	{
		MongoDatabase db;
		public OcorrenciaRepositorio (MongoDatabase db)
		{
			this.db = db;
		}
		
		public void Inserir(OcorrenciaFolha ocorrencia)
        {
            MongoCollection<OcorrenciaFolha> ocorrencias = db.GetCollection<OcorrenciaFolha>("OcorrenciaFolha");
			ocorrencia.id = ObjectId.GenerateNewId();
            ocorrencias.Insert(ocorrencia.ToBsonDocument());     
        }
		
		public void Alterar(OcorrenciaFolha ocorrencia)
		{
			MongoCollection<OcorrenciaFolha> ocorrencias = db.GetCollection<OcorrenciaFolha>("OcorrenciaFolha");
			colaboradores.Save(ocorrencia.ToBsonDocument());
		}
		
		public IEnumerable<OcorrenciaFolha> LerTodos()
        {
            MongoCollection<OcorrenciaFolha> ocorrencias = db.GetCollection<OcorrenciaFolha>("OcorrenciaFolha");
            return ocorrencias.FindAll();
        }
		
		public OcorrenciaFolha LerUm(ObjectId id)
		{
			MongoCollection<OcorrenciaFolha> ocorrencias = db.GetCollection<OcorrenciaFolha>("OcorrenciaFolha");
			return ocorrencias.FindOneById(id);
		}
		
		public void Deletar(ObjectId id)
		{
			MongoCollection<OcorrenciaFolha> ocorrencias = db.GetCollection<OcorrenciaFolha>("OcorrenciaFolha");
			var query = new QueryDocument("_id", id);
			ocorrencias.Remove (query);
		}
	}
}

